home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-19 / iritsm3s.zip / SOLID2.IRT < prev    next >
Text File  |  1991-09-04  |  2KB  |  78 lines

  1. #
  2. # This solid was taken from: Geometric Modeling,
  3. # by Michael E. Mortenson page 441, figure 10.9
  4. #
  5. #                Created by Gershon Elber,    Jan 89
  6. #
  7.  
  8. tm = time(true);
  9.  
  10. save_mat = view_mat;
  11. view_mat = view_mat * scale(vector( 0.5, 0.5, 0.5 ));
  12. save_res = resolution;
  13.  
  14. # normal(TRUE, 0.1, RED);
  15.  
  16. T1 = BOX(vector( -2.0, -0.35, 0.0), 4, 0.7, 0.4);
  17. resolution = 40;
  18. T2 = CYLIN(vector( 0.0, 0.0, -0.001), vector( 0.0, 0.0, 0.402), 1.4);
  19. S1 = T1 * T2;
  20. free(T1);
  21. free(T2);
  22. beep(800,200);
  23. view(list(S1), true);
  24.  
  25. resolution = 20;
  26. T3 = CYLIN(vector( 0.0, 0.0, -0.001), vector( 0.0, 0.0, 0.402), 0.9);
  27. S2 = S1 + T3;
  28. free(T3);
  29. free(S1);
  30. beep(800,200);
  31. view(list(S2), true);
  32.  
  33. resolution = 40;
  34. T4 = CYLIN(vector( 1.45, -0.5, 1.0), vector( 0.0, 1.0, 0.0), 0.8);
  35. T5 = CYLIN(vector(-1.45, -0.5, 1.0), vector( 0.0, 1.0, 0.0), 0.8);
  36. S3 = S2 - T4 - T5;
  37. free(T4);
  38. free(T5);
  39. free(S2);
  40. beep(800,200);
  41. view(list(S3), true);
  42.  
  43. resolution = 8;
  44. T6 = CYLIN(vector( 1.2, 0.0, -0.1), vector( 0.0, 0.0, 0.5), 0.1);
  45. T7 = CYLIN(vector(-1.2, 0.0, -0.1), vector( 0.0, 0.0, 0.5), 0.1);
  46. S4 = S3 - T6 - T7;
  47. free(T6);
  48. free(T7);
  49. beep(1200,200);
  50. view(list(S4), true);
  51.  
  52. resolution = 16;
  53. T8 = CYLIN(vector( 0.0, 0.0, -0.2), vector( 0.0, 0.0, 0.9), 0.3);
  54. T9 = BOX(vector( -0.6, -0.15,-0.1), 1.2, 0.3, 0.7);
  55. S5 = T8 + T9;
  56. free(T8);
  57. free(T9);
  58. beep(1200,200);
  59. view(list(S5), false);
  60.  
  61. S6 = S4 - S5;
  62. free(S4);
  63. free(S5);
  64.  
  65. final = convex(S6);
  66. free(S6);
  67.  
  68. tm = time(false);
  69. tm; # In Seconds
  70.  
  71. interact(list(final), false);
  72.  
  73. save("solid2", list(view_mat,final));
  74. free(final);
  75.  
  76. view_mat = save_mat;
  77. resolution = save_res;
  78.